home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / utildsk / memry374.lha / memory-device / source / smakefile < prev    next >
Makefile  |  1996-05-08  |  5KB  |  198 lines

  1. #!sc:c/smake
  2. #
  3. #####################################################################
  4. #
  5. # SMakefile for memory.device
  6. #
  7. # (C) Copyright 1996 Marius Gröger
  8. #     All Rights Reserved
  9. #
  10. #####################################################################
  11.  
  12. #####################################################################
  13. #
  14. # installation drawer and names of device
  15. #
  16. INSTALL_DIR = EXT:Devs
  17. DEVICE_DIR  = /DEVS
  18. BIN_DIR     = /C
  19. BASENAME    = memory-device
  20. RELNAME     = Memory
  21. NAME        = memory.device
  22. IDS         = aminet.ids
  23. VERSION     = 37
  24. #
  25. #####################################################################
  26.  
  27. #####################################################################
  28. #
  29. # following stuff is your configuration
  30. #
  31. LIBS        = LIB LIB:amiga.lib LIB lib:sc.lib LIB lib:debug.lib
  32. CINCLUDES   =
  33. ASMINCLUDES = INCDIR="INCLUDEA:"
  34. CPUSUFFIX   = 020 # 000 010 020 030 040 ANY
  35. CPUCCOPT    = CPU=68$(CPUSUFFIX)
  36. CP          = C:Copy
  37. MV          = C:Rename
  38. RM          = C:Delete >NIL:
  39. LD          = sc:c/slink
  40. CC          = sc:c/sc
  41. AS          = sc:c/sc
  42. MAKE        = sc:c/smake
  43. BUMPREV     = C:bumprev
  44. SETREV      = C:SetRev
  45. PROTECT     = protect
  46. BUILD_AMINET= /s/build-aminet
  47. ECHO        = Echo
  48. #
  49. #####################################################################
  50.  
  51. #####################################################################
  52. #
  53. # assembler/compiler flags
  54. #
  55. # this applies to normal and optimized compilation:
  56. #
  57. STDFLAGS    = $(CINCLUDES) NOMULTIPLEINCLUDES ERRREXX COMMENTNEST NOSTKCHK NOCHKABORT\
  58.               SMALLCODE SMALLDATA VERBOSE NOICONS STRICT ANSI
  59. #
  60. # this applies only to normal compilation:
  61. #
  62. NORMCFLAGS  = $(STDFLAGS)
  63. #
  64. # this applies only to optimized compilation:
  65. #
  66. OPTCFLAGS   = $(STDFLAGS) $(CPUCCOPT) PARAMETERS=REGISTERS OPT OPTTIME OPTINLINE\
  67.               OPTSCHEDULE STRINGMERGE STRUCTUREEQUIVALENCE
  68. #
  69. # this applies to assembler compilation
  70. #
  71. AFLAGS      = $(ASMINCLUDES) VERBOSE SMALLCODE SMALLDATA
  72. #
  73. #####################################################################
  74.  
  75. #####################################################################
  76. #
  77. # linkage flags
  78. #
  79. LDFLAGS     = NOICONS SC SD ND $(LIBS) TO
  80. OPTLDFLAGS  = NOICONS SC SD ND $(LIBS) TO
  81. #
  82. #####################################################################
  83.  
  84. #####################################################################
  85. #
  86. # the object files
  87. #
  88. NORMOBJ=rt.o copymem.o device.no
  89. OPTOBJ=rt.o copymem.o device.opt$(CPUSUFFIX)
  90. #
  91. #####################################################################
  92.  
  93. #####################################################################
  94. #
  95. # rules
  96. #
  97. # compile a file normally
  98. #
  99. .c.no:
  100.    $(CC) $(NORMCFLAGS) $*.c
  101.    -@$(RM) $*.no
  102.    @$(MV) $*.o $*.no
  103. #
  104. # compile a file optimizing
  105. #
  106. .c.opt$(CPUSUFFIX):
  107.    $(CC) $(OPTCFLAGS) $*.c
  108.    -@$(RM) $*.opt$(CPUSUFFIX)
  109.    @$(MV) $*.o $*.opt$(CPUSUFFIX)
  110. #
  111. # assemble a file
  112. #
  113. .asm.o:
  114.    $(AS) $(AFLAGS) $*.asm
  115. #
  116. #####################################################################
  117.  
  118. #####################################################################
  119. #
  120. # targets
  121. #
  122. help:
  123.    -@Echo "Usage:"
  124.    -@Echo "To make an unoptimized version"
  125.    -@Echo "   $(MAKE) all"
  126.    -@Echo "To make an optimized version"
  127.    -@Echo "   $(MAKE) all_opt"
  128.    -@Echo "To install an unoptimized version"
  129.    -@Echo "   $(MAKE) install"
  130.    -@Echo "To install an optimized version"
  131.    -@Echo "   $(MAKE) install"
  132.    -@Echo "To increment the revision"
  133.    -@Echo "   $(MAKE) newrev"
  134.    -@Echo "To remove all intermediate files for unoptimized the version"
  135.    -@Echo "   $(MAKE) clean_norm"
  136.    -@Echo "To remove all intermediate files for optimized the version"
  137.    -@Echo "   $(MAKE) clean_opt"
  138.    -@Echo "To %remove all intermediate files"
  139.    -@Echo "   %$(MAKE) clean"
  140.    -@Echo "To create a distribution"
  141.    -@Echo "   $(MAKE) release"
  142.  
  143. all: $(DEVICE_DIR)/$(NAME) $(BIN_DIR)/MakeDisk
  144. all_opt: $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX) $(BIN_DIR)/MakeDisk
  145.  
  146. install: all
  147.    $(CP) $(DEVICE_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
  148.  
  149. install_opt: all_opt
  150.    $(CP) $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX) $(INSTALL_DIR)/$(NAME)
  151.  
  152. newrev:
  153.    $(BUMPREV) $(VERSION) $(BASENAME)
  154.  
  155. clean_norm:
  156.    -@$(RM) speed
  157.    -@$(RM) *.lnk
  158.    -@$(RM) *.o
  159.    -@$(RM) *.no
  160.  
  161. clean_opt:
  162.    -@$(RM) speed
  163.    -@$(RM) *.lnk
  164.    -@$(RM) *.o
  165.    -@$(RM) *.opt*
  166.  
  167. clean: clean_norm clean_opt
  168.  
  169. release:
  170.    $(MAKE) CPUSUFFIX=000 all_opt
  171.    $(MAKE) CPUSUFFIX=020 all_opt
  172.    $(MAKE) CPUSUFFIX=040 all_opt
  173.    $(BUILD_AMINET) "$(RELNAME)" "$(BASENAME)" "$(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)" "/ReadMe" "//$(BASENAME)" "$(IDS)" CLEAN
  174.  
  175. speed: speed.no copymem.o
  176.    $(LD) FROM LIB:Astartup.obj speed.no copymem.o $(LDFLAGS) $@
  177.  
  178. $(BIN_DIR)/MakeDisk: makedisk.no
  179.    $(LD) TO $@ FROM LIB:astartup.obj $< LIB lib:amiga.lib lib:sc.lib NOICONS ND SC SD
  180.  
  181. $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX): $(OPTOBJ)
  182.    $(LD) $(OPTOBJ) $(OPTLDFLAGS) $@
  183.  
  184. $(DEVICE_DIR)/$(NAME): $(NORMOBJ)
  185.    $(LD) $(NORMOBJ) $(LDFLAGS) $@
  186. #
  187. #####################################################################
  188.  
  189. #####################################################################
  190. #
  191. # various dependencies
  192. #
  193. rt.o: rt.asm memory.i memory-device_rev.i
  194. device.opt$(CPUSUFFIX) device.no: device.c memory.h
  195. #
  196. #####################################################################
  197.  
  198.